package tiles;

import utilities.CustomMesh;

import com.jme3.scene.Mesh;
import com.jme3.scene.Mesh.Mode;

public class HexMeshBuilder {

	/*
	 * Builds a mesh of side length = 1/sqrt(3)
	 */
	public Mesh buildMesh() {
		CustomMesh mesh = new CustomMesh(7);
		mesh.setMode(Mode.Triangles);
		
		float sideLength = (float) (1/Math.sqrt(3));
		float xVal = 0.5f;
		float yVal = sideLength;
		
		mesh.addVertex(0,yVal,0);
		mesh.addVertex(-xVal, yVal/2, 0);
		mesh.addVertex(0,0,0);
		
		mesh.addVertex(-xVal, yVal/2, 0);
		mesh.addVertex(-xVal, -yVal/2, 0);
		mesh.addVertex(0,0,0);
		
		mesh.addVertex(0,0,0);
		mesh.addVertex(-xVal, -yVal/2, 0);
		mesh.addVertex(0,-yVal,0);
		
		mesh.addVertex(0,0,0);
		mesh.addVertex(0,-yVal,0);
		mesh.addVertex(xVal,-yVal/2,0);
		
		mesh.addVertex(0,0,0);
		mesh.addVertex(xVal, -yVal/2,0);
		mesh.addVertex(xVal, yVal/2,0);
		
		mesh.addVertex(0, yVal, 0);
		mesh.addVertex(0,0,0);
		mesh.addVertex(xVal, yVal/2, 0);
		
		
		
//		float x0 = 0;
//		float x1 = sideLength*0.5f;
//		float x2 = sideLength*1;
//		float x3 = sideLength*1.5f;
//		float x4 = sideLength*2;
//		
//		//float yVal = 0.5f;//(float) Math.sqrt(3);
//		float y0 = 0;
//		float y1 = 0.5f;
//		
//		mesh.addVertex(x0,y0,0);
//		mesh.addVertex(x1,-y1,0);
//		mesh.addVertex(x2,y0,0);
//		
//		mesh.addVertex(x2,y0,0);
//		mesh.addVertex(x1,-y1,0);
//		mesh.addVertex(x3,-y1,0);
//		
//		mesh.addVertex(x2,y0,0);
//		mesh.addVertex(x3,-y1,0);
//		mesh.addVertex(x4,y0,0);
//		
//		mesh.addVertex(x3,y1,0);
//		mesh.addVertex(x2,y0,0);
//		mesh.addVertex(x4,y0,0);
//		
//		mesh.addVertex(x1,y1,0);
//		mesh.addVertex(x2,y0,0);
//		mesh.addVertex(x3,y1,0);
//		
//		mesh.addVertex(x1,y1,0);
//		mesh.addVertex(x0,y0,0);
//		mesh.addVertex(x2,y0,0);
		
		mesh.finish();
		mesh.setStatic();
		
		return mesh;		
	}
	
}
